package j01zuoye;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Arrays;
import java.util.UUID;

public class J4piccopy {
    public static void main(String[] args) throws Exception {
        File pic = new File("_1219\\src\\j01zuoye\\Snipaste_2024-12-19_15-09-36.jpg");
        File parent = new File("_1219/src/j01zuoye/upload/picture");
        if(!parent.exists()){
            //目标目录不存在
            System.out.println("目标目录不存在，创建目录！");
            parent.mkdirs();
        }

        FileInputStream fileInputStream = new FileInputStream(pic);
        //生成新文件名字
        String newName = getNewNameByOld(pic.getName());
        System.out.println("newName = " + newName);

        FileOutputStream fileOutputStream = new FileOutputStream(
            new File("_1219/src/j01zuoye/upload/picture/"+newName)
        );
        while (true){
            //读取文件字节
            int b = fileInputStream.read();
            if(b==-1){
                System.out.println("读取完成！");
                break;
            }
            //没读完
            fileOutputStream.write(b);
        }
        fileOutputStream.close();
    }

    private static String getNewNameByOld(String name){
        //获取后缀 a.b.c.jpg
        String[] nameArr = name.split("\\.");
        System.out.println(name);
        System.out.println(Arrays.toString(nameArr));
        String sufix = nameArr[nameArr.length-1];
        //名字
        String namePre = UUID.randomUUID().toString().replace("-","");
        return namePre+"."+sufix;
    }
}

//
//class PictureTest {
//    public static void main(String[] args) {
//        String sourceFilePath = "1.jpg";
//        String targetDirPath = "upload/picture";
//        File sourceFile = new File(sourceFilePath);
//        if (!sourceFile.exists()) {
//            System.err.println("源文件不存在，请检查文件是否放置在工程根目录下！");
//            return;
//        }
//        File targetDir = new File(targetDirPath);
//        if (!targetDir.exists()) {
//            targetDir.mkdirs();
//        }
//        try {
//            FileInputStream fis = new FileInputStream(sourceFile);
//            String fileExtension = sourceFile.getName().substring(sourceFile.getName().lastIndexOf("."));
//            // 生成不带连字符的UUID作为文件名主体
//            String fileNameWithoutHyphen = UUID.randomUUID().toString().replace("-", "");
//            // 构建目标文件路径，包含新的文件名和原后缀名
//            String targetFilePath = targetDirPath + "/" + fileNameWithoutHyphen + fileExtension;
//            FileOutputStream fos = new FileOutputStream(targetFilePath);
//            byte[] buffer = new byte[1024];
//            int length;
//            while ((length = fis.read(buffer)) > 0) {
//                fos.write(buffer, 0, length);
//            }
//            fis.close();
//            fos.close();
//            System.out.println("文件拷贝成功，目标文件路径：" + targetFilePath);
//        } catch (IOException e) {
//            System.err.println("文件拷贝过程中出现错误：" + e.getMessage());
//            e.printStackTrace();
//        }
//    }
//}

